package com.site.common.utils;

import com.google.common.base.Charsets;
import com.google.common.hash.Hashing;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

/**
 * @ClassName：InterfaceSignatureTool
 * @Description：TODO 统一签名加密管理
 * @Author LinLuoChen
 * @Date 2021/8/16/17:09
 * @Version V1.0
 **/
@Service
public class SignatureUtils {

    /**
     * @Description 获取企业 signature 参数
     * @Author LinLuoChen
     * @Date  17:16
     **/
    public static String isSignature(String timestamp, String nonce){
        // 时间戳 + 随机数 + token = signature
        String str = timestamp+nonce+"密钥待提供";
        return Hashing.sha1().hashString(str,Charsets.UTF_8).toString().toUpperCase();
    }

    /**
     * @Description 获取 timestamp 时间
     * @Author LinLuoChen
     * @Date  11:27
     **/
    public static String timestamp(){
        SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
        return df.format(new Date());
    }

    /**
     * @Description 获取 nonce 参数
     * @Author LinLuoChen
     * @Date  9:01
     **/
    public static String nonce(){
        return UUID.randomUUID().toString();
    }
	
	// 测试方法
	public static void main(String[] args) {
        String timestamp = timestamp();
        String nonce = nonce();
        System.out.println("生成时间戳："+timestamp+"生成UUID："+nonce);
		// 生成 Signature 参数
        System.out.println(isSignature(timestamp,nonce));
    }

}
